package com.photonpay.api.service;

import com.photonpay.api.request.*;
import com.photonpay.api.response.*;

/**
 * @author ：lo-
 * @date ：Created in 2023/11/23 14:24
 */
public interface PhotonPayService {

    /**
     * 获取卡bin
     * @param request 请求参数
     * @return 响应结果
     */
    GetCardBinResponse getCardBin(GetCardBinRequest request);

    /**
     * 开卡
     * @param request 请求参数
     * @return 响应结果
     */
    OpenCardResponse openCard(OpenCardRequest request);

    /**
     * 开卡结果查询
     * @param request 请求参数
     * @return 响应结果
     */
    GetOpenCardResultResponse getOpenCardResult(GetOpenCardResultRequest request);

    /**
     * 更新卡
     * @param request 请求参数
     * @return 响应结果
     */
    UpdateCardResponse updateCard(UpdateCardRequest request);

    /**
     * 注销卡
     * @param request 请求参数
     * @return 响应结果
     */
    GetCardDetailResponse getCardDetail(GetCardDetailRequest request);

    /**
     * 注销卡
     * @param request 请求参数
     * @return 响应结果
     */
    GetCvvResponse getCvv(GetCvvRequest request);

    /**
     * 注销卡
     * @param request 请求参数
     * @return 响应结果
     */
    CancelCardResponse cancelCard(CancelCardRequest request);

    /**
     * 换汇询价
     *
     * @param request 请求参数
     * @return 响应结果
     */
    PreRechargeResponse preRecharge(PreRechargeRequest request);

    /**
     * 充值下单
     *
     * @param request 请求参数
     * @return 响应结果
     */
    RechargeResponse recharge(RechargeRequest request);

    /**
     * 卡余额退还
     *
     * @param request 请求参数
     * @return 响应结果
     */
    RechargeReturnResponse rechargeReturn(RechargeReturnRequest request);
}
